import request from '@/utils/request';
import type { BaseBeanModel, ResponsePageData, ResponseBaseData, QueryParamModel } from '@/api/model/baseModel';

const basePath = '/appsys/datapermissions/SysDataPermissionsLogRest';
/** 数据权限日志表 */
export interface SysDataPermissionsLogDto extends BaseBeanModel {
  /** 执行人 */
  executor?: string;
  /** 执行时间 */
  executionTime?: any;
  executionTimeBegin?: any;
  executionTimeEnd?: any;
  /** mapper名称 */
  mapperName?: string;
  /** 执行方法 */
  method?: string;
  /** 数据权限控制前SQL */
  beforeSql?: string;
  /** 数据权限控制后SQL */
  afterSql?: string;
  /** ATTRIBUTE_01 */
  attribute01?: string;
  /** ATTRIBUTE_02 */
  attribute02?: string;
  /** ATTRIBUTE_03 */
  attribute03?: string;
  /** ATTRIBUTE_04 */
  attribute04?: string;
  /** ATTRIBUTE_05 */
  attribute05?: string;
  /** ATTRIBUTE_06 */
  attribute06?: string;
  /** ATTRIBUTE_07 */
  attribute07?: string;
  /** ATTRIBUTE_08 */
  attribute08?: string;
  /** ATTRIBUTE_09 */
  attribute09?: string;
  /** ATTRIBUTE_10 */
  attribute10?: string;
  /** 拼接后的SQL执行耗时时间 */
  timeConsuming?: number;
  /** 异常信息 */
  exceptionMsg?: string;
  /** 表名称 */
  tableName?: string;
  /** 应用ID */
  sysApplicationId?: string;
}

/**
 * 获取分页数据
 * @param param 表格参数
 * @returns 表格数据
 */
export function listSysDataPermissionsLogByPage(
  param: QueryParamModel
): Promise<ResponsePageData<SysDataPermissionsLogDto>> {
  return request.post(`${basePath}/searchSysDataPermissionsLogByPage/v1`, param);
}

/**
 * 根据id加载授权数据
 * @param id 选中数据的id
 * @returns 详情数据
 */
export function getSysDataPermissionsLog(id: string): Promise<ResponseBaseData<SysDataPermissionsLogDto>> {
  return request.get(`${basePath}/get/${id}/v1`);
}

/**
 * 根据id集合删除数据
 * @param ids 选中数据id集合
 */
export function delSysDataPermissionsLog(ids: string[]): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/delete-by-ids/v1`, ids);
}

/** 清空数据 */
export function clearAllData(): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/clearAllData/v1`);
}
